package com.settlement.system.model.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 核销登记表单
 *
 */
@Schema(description = "核销登记表单对象")
@Data
public class CheckInForm {

    @Schema(description="店铺ID")
    private Long id;

    /**
     * 责任部门核实人
     */
    @Schema(description="责任部门核实人")
    private Long checkUserId;

    /**
     * 损失原因
     */
    @Schema(description="损失原因")
    private String lossReason;

    /**
     * 损失原因细则名称
     */
    @Schema(description="损失原因细则名称")
    private String lossDetailName;

    /**
     * 责任方
     */
    @Schema(description="责任方")
    private String roleCode;

    /**
     * 订单核销单据状态名称
     */
    @Schema(description="订单核销单据状态名称")
    private String orderStatusName;

    /**
     * 责任方跟进结果
     */
    @Schema(description="责任方跟进结果")
    private String followResult;

    /**
     * 是否自认损失 0否1是
     */
    @Schema(description="是否自认损失")
    private Integer ownerLoss;

    /**
     * 自认损失金额（等于应收账款余额）
     */
    @Schema(description="自认损失金额（等于应收账款余额）")
    private BigDecimal ownerLossMoney;

    /**
     * 责任方负责人审核备注
     */
    @Schema(description="责任方负责人审核备注")
    private String managerRemark;

    /**
     * 质检时间
     */
    @Schema(description="质检时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime qualityDate;

    /**
     * 质检订单号
     */
    @Schema(description="质检订单号")
    private String qualityNo;

    /**
     * 质检数量
     */
    @Schema(description="质检数量")
    private Byte qualityCount;

    /**
     * 打款时间
     */
    @Schema(description="打款时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime payoutsDate;

    /**
     * 收款交易号
     */
    @Schema(description="收款交易号")
    private String payoutsNo;

    /**
     * 追回款项余额
     */
    @Schema(description="追回款项余额")
    private BigDecimal recoverMoney;

    /**
     * 盘盈单号
     */
    @Schema(description="盘盈单号")
    private String pyNo;

    /**
     * 关联个人已办或归档核销表
     */
    @Schema(description="关联个人已办或归档核销表ID")
    private String doneId;

    /**
     * 单据编号
     */
    @Schema(description="单据编号")
    private String orderNo;
}
